
// v1：使用罪简单粗暴的方式实现

/**
 * 计算时间偏移量的工具函数，返回距离当前本地时间指定量的日期时间
 */
export default class TimeSpan {
    private static get now() {
        return Date.now()
    }
    private static toDateTime(timeStamp: number): Date {
        return new Date(timeStamp)
    }
    /**
     * 
     * @param seconds 秒
     * @returns 
     */
    static fromSeconds(seconds: number): Date {
        return this.toDateTime(this.now + seconds * 1000)
    }
    /**
     * 
     * @param minutes 分
     * @returns 
     */
    static fromMinutes(minutes: number): Date {
        return this.toDateTime(this.now + minutes * 60 * 1000)
    }
    /**
     * 
     * @param hours 小时
     * @returns 
     */
    static fromHours(hours: number): Date {
        return this.toDateTime(this.now + hours * 60 * 60 * 1000)
    }
    /**
     * 
     * @param days 天
     * @returns 
     */
    static fromDays(days: number): Date {
        return this.toDateTime(this.now + days * 60 * 60 * 24 * 1000)
    }
}

TimeSpan.fromSeconds(2)
TimeSpan.fromMinutes(2)
TimeSpan.fromHours(2)
TimeSpan.fromDays(2)
// 存在问题：代码无封装，存在大量重复逻辑